package com.jt.base.utils;

import cn.hutool.captcha.generator.RandomGenerator;

import java.util.HashMap;
import java.util.Map;

/** 返回数据 */
public class R extends HashMap<String, Object> {
  private static final long serialVersionUID = 1L;

  public R() {
    put("code", Constant.ERROR_CODE_SUCCESS);
    put("msg", "success");
  }

  public static R error() {
    return error(500, "未知异常，请联系管理员");
  }

  public static R error(String msg) {
    return error(500, msg);
  }

  public static R error(int code, String msg) {
    R r = new R();
    r.put("code", code);
    r.put("msg", msg);
    return r;
  }

  public static R ok(String msg) {
    R r = new R();
    r.put("msg", msg);
    return r;
  }

  public static R ok(Map<String, Object> map) {
    R r = new R();
    r.putAll(map);
    return r;
  }

  public static R ok(int code, String msg, Map<String, Object> map) {
    R r = new R();
    r.put("code", code);
    r.put("msg", msg);
    r.putAll(map);
    return r;
  }

  public static R ok() {
    return new R();
  }

  @Override
  public R put(String key, Object value) {
    super.put(key, value);
    return this;
  }

  /** 判断R是否成功 */
  public static boolean isSuccess(R r) {
    if (r != null) {
      int code = (int) r.get("code");
      if (Constant.ERROR_CODE_SUCCESS == code) { // 校验成功
        return true;
      } else {
        return false;
      }
    } else {
      return false;
    }
  }

  public static void main(String[] args) {
    RandomGenerator randomGenerator = new RandomGenerator(8);
    for (int i = 0; i < 100; i++) {
      System.out.println(randomGenerator.generate());
    }
  }
}
